/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.sorbonne.inf5.yams.model.combinaison;


import fr.sorbonne.inf5.yams.exceptions.DeNotRunException;
import fr.sorbonne.inf5.yams.model.De;

import fr.sorbonne.inf5.yams.model.InterfaceFace;

import fr.sorbonne.inf5.yams.model.InterfaceFace;
import fr.sorbonne.inf5.yams.model.InterfaceFace;
import java.util.List;
import java.util.Map;

/**
 * Cette Interface donne le patron pour les combinaison de dés
 * @author Oukherfellah Riad
 * @author Dubos Romain
 */
public interface Combinaison {

    /**
     * Calcule le résultat de la combinaison des dés passé en paramètre
     * @param listeDes la liste des dés pour vérification avec la combinaison
     * @return la valeur du score si la combinaison a été réalisée, zéro sinon
     */
    public  int calculer(List<De> listeDes) throws DeNotRunException;


    /**
     * Calcule le résultat de la combinaison grâce au à la map face, nombre
     * occurence de cette face
     * @param listesFaces contient une map qui associe une face avec son nombre d'occurrence
     * @return la valeur du score si la combinaison a été réalisée, zéro sinon
     */
    public abstract int calculer(Map<InterfaceFace, Integer> listeFaces);

    /**
     * Renvoie l'intitulé de la combinaison
     * @return l'intitulé de la combinaison
     */
    public String getIntitule();

    @Override
    public String toString();


}
